OOP calling convention for database functions. DBMS abstraction implemented by means...
[lhc/web/wiklou.git] / includes / DatabaseFunctions.php
1 <?php
2 # $Id$
3
4 # Backwards compatibility wrapper for Database.php
5
6 # I imagine this file will eventually become a backwards
7 # compatibility wrapper around a load balancer object, and
8 # the load balancer will finally call Database, which will
9 # represent a single connection
10
11 # Note: $wgDatabase has ceased to exist. Destroy all references.
12
13 # Usually aborts on failure
14 # If errors are explicitly ignored, returns success
15 function wfQuery( $sql, $db, $fname = "" )
16 {
17 global $wgOut;
18 if ( !is_numeric( $db ) ) {
19 # Someone has tried to call this the old way
20 $wgOut->fatalError( wfMsgNoDB( "wrong_wfQuery_params", $db, $sql ) );
21 }
22 $c =& wfGetDB( $db );
23 if ( $c !== false ) {
24 return $c->query( $sql, $fname );
25 } else {
26 return false;
27 }
28 }
29
30 function wfSingleQuery( $sql, $db, $fname = "" )
31 {
32 $res = wfQuery($sql, $db, $fname );
33 $row = wfFetchRow( $res );
34 $ret = $row[0];
35 wfFreeResult( $res );
36 return $ret;
37 }
38
39 function &wfGetDB( $db = DB_LAST )
40 {
41 global $wgLoadBalancer;
42 return $wgLoadBalancer->getConnection( $db );
43 }
44
45 # Turns buffering of SQL result sets on (true) or off (false). Default is
46 # "on" and it should not be changed without good reasons.
47 # Returns the previous state.
48
49 function wfBufferSQLResults( $newstate, $dbi = DB_LAST )
50 {
51 $db =& wfGetDB( $dbi );
52 if ( $db !== false ) {
53 return $db->setBufferResults( $newstate );
54 } else {
55 return NULL;
56 }
57 }
58
59 # Turns on (false) or off (true) the automatic generation and sending
60 # of a "we're sorry, but there has been a database error" page on
61 # database errors. Default is on (false). When turned off, the
62 # code should use wfLastErrno() and wfLastError() to handle the
63 # situation as appropriate.
64 # Returns the previous state.
65
66 function wfIgnoreSQLErrors( $newstate, $dbi = DB_LAST )
67 {
68 $db =& wfGetDB( $dbi );
69 if ( $db !== false ) {
70 return $db->setIgnoreErrors( $newstate );
71 } else {
72 return NULL;
73 }
74 }
75
76 function wfFreeResult( $res, $dbi = DB_LAST )
77 {
78 $db =& wfGetDB( $dbi );
79 if ( $db !== false ) {
80 $db->freeResult( $res );
81 return true;
82 } else {
83 return false;
84 }
85 }
86
87 function wfFetchObject( $res, $dbi = DB_LAST )
88 {
89 $db =& wfGetDB( $dbi );
90 if ( $db !== false ) {
91 return $db->fetchObject( $res, $dbi = DB_LAST );
92 } else {
93 return false;
94 }
95 }
96
97 function wfFetchRow( $res, $dbi = DB_LAST )
98 {
99 $db =& wfGetDB( $dbi );
100 if ( $db !== false ) {
101 return $db->fetchRow ( $res, $dbi = DB_LAST );
102 } else {
103 return false;
104 }
105 }
106
107 function wfNumRows( $res, $dbi = DB_LAST )
108 {
109 $db =& wfGetDB( $dbi );
110 if ( $db !== false ) {
111 return $db->numRows( $res, $dbi = DB_LAST );
112 } else {
113 return false;
114 }
115 }
116
117 function wfNumFields( $res, $dbi = DB_LAST )
118 {
119 $db =& wfGetDB( $dbi );
120 if ( $db !== false ) {
121 return $db->numFields( $res );
122 } else {
123 return false;
124 }
125 }
126
127 function wfFieldName( $res, $n, $dbi = DB_LAST )
128 {
129 $db =& wfGetDB( $dbi );
130 if ( $db !== false ) {
131 return $db->fieldName( $res, $n, $dbi = DB_LAST );
132 } else {
133 return false;
134 }
135 }
136
137 function wfInsertId( $dbi = DB_LAST )
138 {
139 $db =& wfGetDB( $dbi );
140 if ( $db !== false ) {
141 return $db->insertId();
142 } else {
143 return false;
144 }
145 }
146
147 function wfDataSeek( $res, $row, $dbi = DB_LAST )
148 {
149 $db =& wfGetDB( $dbi );
150 if ( $db !== false ) {
151 return $db->dataSeek( $res, $row );
152 } else {
153 return false;
154 }
155 }
156
157 function wfLastErrno( $dbi = DB_LAST )
158 {
159 $db =& wfGetDB( $dbi );
160 if ( $db !== false ) {
161 return $db->lastErrno();
162 } else {
163 return false;
164 }
165 }
166
167 function wfLastError( $dbi = DB_LAST )
168 {
169 $db =& wfGetDB( $dbi );
170 if ( $db !== false ) {
171 return $db->lastError();
172 } else {
173 return false;
174 }
175 }
176
177 function wfAffectedRows( $dbi = DB_LAST )
178 {
179 $db =& wfGetDB( $dbi );
180 if ( $db !== false ) {
181 return $db->affectedRows();
182 } else {
183 return false;
184 }
185 }
186
187 function wfLastDBquery( $dbi = DB_LAST )
188 {
189 $db =& wfGetDB( $dbi );
190 if ( $db !== false ) {
191 return $db->lastQuery();
192 } else {
193 return false;
194 }
195 }
196
197 function wfSetSQL( $table, $var, $value, $cond, $dbi = DB_WRITE )
198 {
199 $db =& wfGetDB( $dbi );
200 if ( $db !== false ) {
201 return $db->set( $table, $var, $value, $cond );
202 } else {
203 return false;
204 }
205 }
206
207 function wfGetSQL( $table, $var, $cond="", $dbi = DB_LAST )
208 {
209 $db =& wfGetDB( $dbi );
210 if ( $db !== false ) {
211 return $db->getField( $table, $var, $cond );
212 } else {
213 return false;
214 }
215 }
216
217 function wfFieldExists( $table, $field, $dbi = DB_LAST )
218 {
219 $db =& wfGetDB( $dbi );
220 if ( $db !== false ) {
221 return $db->fieldExists( $table, $field );
222 } else {
223 return false;
224 }
225 }
226
227 function wfIndexExists( $table, $index, $dbi = DB_LAST )
228 {
229 $db =& wfGetDB( $dbi );
230 if ( $db !== false ) {
231 return $db->indexExists( $table, $index );
232 } else {
233 return false;
234 }
235 }
236
237 function wfInsertArray( $table, $array, $fname = "wfInsertArray", $dbi = DB_WRITE )
238 {
239 $db =& wfGetDB( $dbi );
240 if ( $db !== false ) {
241 return $db->insertArray( $table, $array, $fname );
242 } else {
243 return false;
244 }
245 }
246
247 function wfGetArray( $table, $vars, $conds, $fname = "wfGetArray", $dbi = DB_LAST )
248 {
249 $db =& wfGetDB( $dbi );
250 if ( $db !== false ) {
251 return $db->getArray( $table, $vars, $conds, $fname );
252 } else {
253 return false;
254 }
255 }
256
257 function wfUpdateArray( $table, $values, $conds, $fname = "wfUpdateArray", $dbi = DB_WRITE )
258 {
259 $db =& wfGetDB( $dbi );
260 if ( $db !== false ) {
261 $db->updateArray( $table, $values, $conds, $fname );
262 return true;
263 } else {
264 return false;
265 }
266 }
267
268 function wfTableName( $name, $dbi = DB_LAST ) {
269 $db =& wfGetDB( $dbi );
270 if ( $db !== false ) {
271 return $db->tableName( $name );
272 } else {
273 return false;
274 }
275 }
276
277 function wfStrencode( $s, $dbi = DB_LAST )
278 {
279 $db =& wfGetDB( $dbi );
280 if ( $db !== false ) {
281 return $db->strencode( $s );
282 } else {
283 return false;
284 }
285 }
286
287 function wfNextSequenceValue( $seqName, $dbi = DB_WRITE ) {
288 $db =& wfGetDB( $dbi );
289 if ( $db !== false ) {
290 return $db->nextSequenceValue( $seqName );
291 } else {
292 return false;
293 }
294 }
295
296 function wfUseIndexClause( $index, $dbi = DB_READ ) {
297 $db =& wfGetDB( $dbi );
298 if ( $db !== false ) {
299 return $db->useIndexClause( $index );
300 } else {
301 return false;
302 }
303 }
304 ?>